home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / misc_pto / 29ksim / 29k.s < prev    next >
Text File  |  1987-11-30  |  3KB  |  145 lines

  1.      .title    "29K.s -- Test file for 29K-Soft"
  2.  
  3.  
  4. ;********************************************************************
  5. ;the following two equ statements need to be changed if different page
  6. ;sizes are to be tested
  7.  
  8. page    .equ    000#h        ;0=1k page 100=2k page, 200=4k, and 300=8k
  9. x    .equ    0000#h        ;0=1k, 0=2k, 2000=4k, 2000=8k
  10.  
  11.  
  12. ;*********************************************************************
  13.  
  14.            .global    main
  15.  
  16.       .nolistmx
  17.       .nolistsym
  18.     .nolisttx
  19.  
  20.       .nolistix
  21.       .include    "trap.h"
  22.       .include    "sr.h"
  23.       .include    "macro.h"
  24.       .list
  25.  
  26. data    .seg    data,absolute (5ff8#h + x)        ;1 cycle memory
  27.     .use    data
  28. dmems:
  29.     .word    0aa55#h                ;data constant for load
  30.     .word    06817#h
  31.     .word    011ff#h
  32.     .word    022cc#h
  33.     .word    03399#h
  34. dendm:
  35.     fill    01234#h,50
  36.     .word    0
  37.     .word    0
  38.     .word    0
  39.  
  40. data1    .seg    data,absolute (1005ff8#h + x)        ; 2 cycle memory
  41.       .use    data1
  42. d1mems:
  43.     .word    0aa55#h
  44.     .word    06817#h
  45.     .word    011ff#h
  46.     .word   022cc#h
  47.     .word    03399#h
  48.     .word    0
  49. d1endm:
  50.     .word    0
  51.     .word    0
  52.  
  53. data2    .seg    data,absolute (2005ff8#h + x)        ; 3 cycle memory
  54.     .use    data2
  55.     .word    0aa55#h
  56.       .word    06817#h
  57.       .word    011ff#h
  58.     .word    022cc#h
  59.     .word    03399#h
  60.     .word    0
  61.     .word    0
  62.     .word    0
  63.  
  64. code    .seg    code,absolute 01000#h /* should change back to 1000 later */
  65.       .use    code
  66.  
  67. no    .equ    20#h    ;control byte for load or store no xlate in super mode
  68. yes    .equ    0    ;control byte for load or store xlate ok
  69.  
  70. LOOPCOUNT    .equ    100    ; counter through loop
  71.  
  72. ;For now, need to skip supervisor mode so no trap occurs.  Later,
  73. ;the load stores will be tested in the supervisor mode with PD=1 xlate on
  74. ;the PA bit in the load store will control xlate for each instruction
  75. ;the tlb table will be zeroed to force tlbmiss when required
  76. ;
  77. ;;;;;;;;;;;;;;;;;;;;
  78. main:
  79. ;;;;;;;;;;;;;;;;;;;;
  80.  
  81.  
  82.     .listmx
  83.  
  84.     dumpsr    0,3
  85.  
  86.     trap    SHOWSYSTIME
  87.     trap    SHOWSYSTIME    ; twice to see how long a trap takes!
  88.  
  89.     /* set up pointers */
  90.     const    gr50,05ff8#h + x    ; should be 05ff8#h + x
  91.     consth    gr50,00000#h        ; high address
  92.  
  93.     /* set up counter */
  94.     const    gr55,1            ; initialize loop counter
  95.     const    gr57,LOOPCOUNT
  96.     consth    gr57,LOOPCOUNT >> 16 
  97.     mtsrim    FS,1            ; set funnel shifter for 1
  98. loop:
  99.     call    gr5b,copy
  100.     cpneq    gr56,gr55,gr57    ; test for done !
  101.     jmpt    gr56,loop
  102.     add    gr55,gr55,01    ; add one !
  103.  
  104.     trap    SHOWSYSTIME
  105.  
  106.     const    gr02,200
  107.     trap    SETTIME
  108. ;
  109.     dumpsr    8,9
  110.     dumpsr    0,3
  111.     dumpmem    dmems,dendm
  112.     trap    SHOWTIME
  113.     dumpsr    132,132
  114.     trap    END_SUCCESS        ;all tests completed, no errors
  115.  
  116. ;;;;;;;;;;;;;;;
  117. error:
  118. ;;;;;;;;;;;;;;;
  119.     trap    END_FAIL        ; failed something
  120.       nop
  121.       nop
  122.       
  123. ;;;;;;;;;;;;;;;;
  124.  
  125. copy:
  126.  
  127. ;;;;;;;;;;;;;;;;
  128.  
  129.  
  130.     load    no,gr70,gr50
  131.     add    gr50,gr50,0    ; increment word address (should be 4 not zero)
  132.     extract    gr70,gr70,gr50    ; shift in gr50 one bit at a time
  133.     jmpi    gr5b        ; copy complete ok return to main
  134.     store    no,gr70,gr50    ; delay store in next address
  135.  
  136.  
  137.     nop            ; after jmpi, just in case I forget !
  138.  
  139.     nop            ; a couple more to make sure code seg
  140.     nop            ; is big enough for simulator
  141.  
  142.  
  143.     .end
  144.  
  145.